草庐IT

JavaBeans 比较

全部标签

java - 比较两个对象,其中一个可能为空

我的一个类中有一个函数可以将自身与同一类的另一个实例进行比较-并找出哪些变量不同。这是为了最大限度地减少主数据库的网络负载(通过仅上传需要上传的数据,而不是上传整个对象)。为此,我一直在尝试利用object.equals()函数来比较两个对象。我很快发现object.equals()不处理null,在阅读thisquestion之后,我明白为什么。所以我的错误代码示例如下:publicclassMyObject{StringmyString;StringmyString2;publicStringgetChangedVars(MyObjectcomparisonObj){ArrayLi

java - 什么时候使用 'new' 关键字比较合适?

什么时候需要在Java中使用new关键字。我知道您应该在创建这样的对象实例时使用它:TextViewtextView=newTextView(this);有时在代码中我注意到new没有被使用,我感到很困惑。在这行代码中:AssetManagerassetManager=getAssets();为什么AssetManager的实例不是这样创建的:AssetManagerassetManager=newAssetManager();然后它被设置为等于getAssests()?什么时候应该使用new?谢谢! 最佳答案 第一次显式创建对象时

java - 比较 LinkedList.contains() 中的对象

我希望能够让LinkedList.contains()为自定义比较器返回true。假设我有1个LinkedList和2个对象LinkedListmyList=newLinkedList();MyObjecta=newMyObject("HELLO");MyObjectb=newMyObject("HELLO");从技术上讲,两个对象在比较方面是相同的(MyObject实现了Comparable)(a==b)==真但是,当我执行以下操作时,myList不会为myList.contains(b)返回truemyList.add(a)myList.contains(b)//==false我认

java - 字符串比较中文字的正确位置是什么?

我有if(localName.equals("TaxName")){但是PMD说PositionliteralsfirstinStringcomparisons 最佳答案 "TaxName".equals(localName)更好,因为如果localName为空,您将不会得到空指针异常。 关于java-字符串比较中文字的正确位置是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

java - 深度递归对象比较(再次)

SO上有两个类似的问题:IsthereaJavautilitytodoadeepcomparisonoftwoobjects?Deepreflectivecompareequals但是,有趣的是,他们都没有对这个问题给出完全正确的答案。我和其他问题的作者真正想要的是一些库中的一些方法,它只会判断给定的两个对象是否相等:booleandeepEquals(Objectobj1,Objectobj2)即不抛出任何异常等等。apache的EqualsBuilder不是解决方案,因为它没有进行深度比较。Unitils似乎也是一个错误的决定,因为它的方法不返回true或false;如果比较失败,

java - 使用自定义比较器对基元数组进行排序,而不转换为对象

在Java中使用自定义比较器(或键)函数对原始数组进行排序的最简单方法是什么?无需转换为对象数组(为了性能†)。†(只是预防措施,我不是在问从性能POV来看不转换为对象是否是一个好的决定。) 最佳答案 标准Java库不支持使用自定义比较器对原始值数组进行排序。您可以轻松地从头开始实现简单的排序(例如bubblesort-O(N^2)),但问题是对于足够大的数组,您可以通过不转换为盒装来节省类型在效率较低的排序算法中丢失。所以你的选择是:从头开始实现高性能排序(归并排序、改进的快速排序等)。为不支持比较器的原始类型找到现有的高性能排序

java.util.Timestamp.after() 比较毫秒时出错?

我正在从Oracle数据库中提取日期。它们设置在java.util.Date字段上,它们实际上是java.sql.Timestamp实例(它是Java.util.Date的子类)。如果我通过在第一个日期调用after()来比较两个不同数据库记录中的两个时间戳并将其与第二个日期进行比较,那么当日期的所有部分都相同时我会得到错误的答案,除了毫秒。以下所有结果都应为“真”,但第二组数字不会:firstDate=1/1/200012:00:20:00secondDate=1/1/200012:00:10:00result=firstDate.after(secondDate);resultis

jvm - 为什么 java/lang/System 中的 nullPrintStream() 函数将 currentTimeMillis() 与零进行比较?

加载系统类时,方法实例化in,out和errPrintStream变量到null使用nullPrintStream()方法:privatestaticPrintStreamnullPrintStream()throwsNullPointerException{if(currentTimeMillis()>0){returnnull;}thrownewNullPointerException();}我明白为什么会这样,为什么在加载过程中不能实例化变量,但我感到困惑的是那个方法的内容。为什么要比较currentTimeMillis()至0?在什么情况下该比较会返回false?

java.sql.Timestamp 比较错误?

这个问题在这里已经有了答案:java.sql.Timestampcreatedfromjava.util.Date,whyalwaysbefore()it?(2个答案)关闭9年前。你好,我有一个这样的代码片段:Dated1=newjava.sql.Timestamp(newDate().getTime());Thread.sleep(10);Dated2=newjava.sql.Timestamp(newDate().getTime());System.out.println("Date1:"+d1);System.out.println("Date2:"+d2);System.out

java - Java 中用于文件比较的编程方法

比较两个十六进制文件签名的相似性的最佳方法是什么。更具体地说,我想做的是采用.exe文件的十六进制表示形式,并将其与一系列病毒签名进行比较。对于这种方法,我计划将文件(exe)十六进制表示分解为N个字符(即10个十六进制字符)的各个组,并对病毒签名执行相同的操作。我的目标是执行某种启发式方法,因此统计检查此exe文件是否与已知病毒签名具有X%的相似性。我想到的最简单且可能非常错误的方法是,将exe[n,n-1]与病毒[n,n-1]进行比较,其中数组中的每个元素都是一个子数组,因此exe1[0,9]对抗病毒1[0,9]。每个子集都将进行统计评分。如您所知,将进行大量比较,因此非常非常慢。